In and Out of SSA: A Denotational Specification

نویسندگان

  • Sebastian Pop
  • Pierre Jouvelot
  • Georges-André Silber
چکیده

We present non-standard denotational specifications of the SSAform and of its conversion processes from and to imperative pro-gramming languages. Thus, we provide a strong mathematicalfoundation for this intermediate code representation language usedin modern compilers such as GCC or Intel CC.More specifically, we provide (1) a new functional approachto SSA, the Static Single Assignment form, together with its de-notational semantics, (2) a collecting denotational semantics for asimple imperative language Imp, (3) a non-standard denotationalsemantics specifying the conversion of Imp to SSA and (4) a non-standard denotational semantics for the reverse SSA to Imp conver-sion process. These translations are proven correct, ensuring thatthe structure of the memory states manipulated by imperative con-structs is preserved in compilers’ middle ends that use the SSAform as control-flow data representation. Interestingly, as unex-pected by-products of our conversion procedures, we offer (1) anew proof of the reducibility of the RAM computing model to thedomain of Kleene’s partial recursive functions, to which SSA isstrongly related, and, on a more practical note, (2) a new algorithmto perform program slicing in imperative programming languages.All these specifications have been prototyped using GNU CommonLisp.These fundamental results prove that the widely used SSA tech-nology is sound. Our formal denotational framework further sug-gests that the SSA form could become a target of choice for otheroptimization analysis techniques such as abstract interpretationor partial evaluation. Indeed, since the SSA form is language-independent, the resulting optimizations would be automaticallyenabled for any source language supported by compilers such asGCC.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Draft Version In and Out of SSA: A Denotational Specification

We present non-standard denotational specifications of the SSA form and of its conversion processes from and to imperative programming languages. Thus, we provide a strong mathematical foundation for this intermediate code representation language used in modern compilers such as GCC or Intel CC. More specifically, we provide (1) a new functional approach to SSA, the Static Single Assignment for...

متن کامل

Draft Version Denotational Semantics for SSA Conversion

We present the first formal specification of the SSA form, an intermediate code representation language used in most modern compilers such as GCC or Intel CC, and of its conversion process from imperative languages. More specifically, we provide (1) a denotational semantics of the SSA, the Static Single Assignment form, (2) a collecting denotational semantics for a Turing-complete imperative la...

متن کامل

Fiscal Policy and Poverty Reduction in Some Selected Sub-Saharan Africa Countries

The equally uncharacterized nature of government role in Sub Saharan African (SSA) region on the issue of poverty reduction have surged the modest research of this study. The issue on poverty is a continuous cause and need remedies so much and fast. This study examined the effect of fiscal policy on poverty reduction in Sub-Saharan Africa from 1999 to 2016. Pool Mean Group (PMG) was employed to...

متن کامل

Mixed Specification Logic

Separation of concerns or aspects is nowadays recognized as an important issue in software engineering, both at the programming and at the design/specification level. The goal of mixed specification languages is to take into account all or at least several aspects of systems. We found out from our experience that a lot of mixed specification languages do share most of their features. However, s...

متن کامل

Mechanized Verification of Computing Dominators for Formalizing Compilers

One prerequisite to the formal verification of modern compilers is to formalize computing dominators, which enable SSA forms, advanced optimizations, and analysis. This paper provides an abstract specification of dominance analysis that is sufficient for formalizing modern compilers; it describes a certified implementation and instance of the specification that is simple to design and reason ab...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010